# -*- coding: utf-8 -*-
"""
@Time    : 2024/6/28 19:15 
@Author  : ZhangShenao 
@File    : advanced_usage.py 
@Desc    : 控制语句的一些高级用法
"""


# if三元表达式
def calc_abs(x):
    """使用if三元表达式,计算x的绝对值"""
    return x if x >= 0 else -x


print(calc_abs(-15))  # 15

# for-else语句:在for语句的所有循环都正常执行完成后,会执行else语句
for i in range(10):
    print(i, end='\t')
else:
    print('\nfor循环正常执行完成\n')

# 如果for循环中途break掉,则else语句不会执行
for i in range(10):
    print(i, end='\t')
    if i > 4:
        break
else:
    print('\nfor循环正常执行完成\n')  # 因为前面break了,所以这里的else语句并不会被执行

# while-else语句
# 与for-else语句类型,在while语句的所有循环都正常执行完成后,会执行else语句
i = 0
while i < 10:
    print(i, end='\t')
    i += 1
else:
    print('\nwhile循环正常执行完成\n')

# try-except-else语句: 如果try下有异常抛出,则不执行else语句。如果没有异常抛出,则执行else语句
try:
    pass
except Exception as e:
    print(f'发生异常: {e}')
else:
    print('没有发生异常')  # 因为没有抛出异常,因此这里的else语句会被执行

try:
    raise ValueError('模拟抛出异常')
except Exception as err:
    print(f'发生异常: {err}')
else:
    print('没有发生异常')  # 因为抛出了异常,因此这里的else语句不会被执行'
